package main

import "fmt"

//type Person struct {
//	name   string
//	gender int
//	age    int
//}
//
//type Student struct {
//	Person // 匿名字段，不要给名称
//	id     int
//	addr   string
//}

func main() {
	// 顺序初始化
	var s1 Student = Student{Person{"mike", 'm', 18}, 1, "bj"}
	fmt.Println("s1 =", s1) // s1 = {{mike 109 18} 1 bj}

	//自动推到类型
	s2 := Student{Person{"mike", 'm', 18}, 1, "bj"}
	fmt.Printf("s2 = %+v\n", s2) // %+v --> 让显示更详细	// s2 = {Person:{name:mike gender:109 age:18} id:1 addr:bj}

	// 指定成员初始化
	s3 := Student{id: 1}
	fmt.Println("s3 =", s3) // s3 = {{ 0 0} 1 }

	s4 := Student{Person: Person{name: "mike"}} // 其余的默认
	fmt.Println("s4 =", s4)                     // s4 = {{mike 0 0} 0 }
}
